﻿unit uPrincipal;

interface

uses

  Windows,
  Messages,
  SysUtils,
  Classes,
  Controls,
  Forms,
  AppEvnts,
  Menus,
  ExtCtrls,
  StdCtrls,
  XPMan,
  PngImageList,
  ImgList;

type
  Tfm_Principal = class(TForm)
    ae_Principal: TApplicationEvents;
    MainMenu1: TMainMenu;
    XPManifest1: TXPManifest;
    PngImageList1: TPngImageList;
    pn_Navbar: TPanel;
    bt_GrupoProduto: TButton;
    bt_Cad_Volume: TButton;
    bt_Cad_Pedido: TButton;
    bt_Relatorio: TButton;
    bt_Cad_Produto: TButton;
    bt_Cad_Caixa: TButton;
    bt_Cad_Cliente: TButton;
    bt_Config: TButton;
    bt_OrdemServico: TButton;
    bt_ComandoSQL: TButton;
    procedure ae_PrincipalMessage(var Msg: tagMSG;var Handled: Boolean);
    procedure bt_Cad_ProdutoClick(Sender: TObject);
    procedure bt_Cad_PedidoClick(Sender: TObject);
    procedure bt_Cad_ClienteClick(Sender: TObject);
    procedure bt_Cad_CaixaClick(Sender: TObject);
    procedure bt_Cad_VolumeClick(Sender: TObject);
    procedure bt_ConfigClick(Sender: TObject);
    procedure bt_GrupoProdutoClick(Sender: TObject);
    procedure bt_RelatorioClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure bt_OrdemServicoClick(Sender: TObject);
    procedure bt_ComandoSQLClick(Sender: TObject);
  protected
    procedure ObjOnMouseEnter(Sender:TObject);
    procedure ObjOnMouseLeave(Sender:TObject);
  private
    procedure SetWidthBar(bDentro:boolean);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fm_Principal: Tfm_Principal;

implementation

uses
  StrUtils,
  uUtils,
  uCadCliente,
  uConfiguracoes,
  uCadProduto,
  uCadCaixa,
  uCadOrcamento,
  uCadProdutoCaixa,
  uProdutoGrupo,
  uAplicacao,
  uErro,
  uRelatorio,
  uOrdemServico,
  uSQL;
{$R *.dfm}

procedure Tfm_Principal.ae_PrincipalMessage(var Msg: tagMSG;var Handled: Boolean);
var
   i: SmallInt;
begin
   {Isso conserta o mouse wheel do dbgrid}
   if Msg.message = WM_MOUSEWHEEL then
   begin
     Msg.message := WM_KEYDOWN;
     Msg.lParam := 0;
     i := HiWord(Msg.wParam) ;
     if i > 0 then
       Msg.wParam := VK_UP
     else
       Msg.wParam := VK_DOWN;

     Handled := False;
   end;
end;

procedure Tfm_Principal.bt_Cad_CaixaClick(Sender: TObject);
begin
  TFormulario.Instanciar(Tfm_Cad_Caixa,fm_Cad_Caixa);
end;

procedure Tfm_Principal.bt_Cad_ClienteClick(Sender: TObject);
begin
  TFormulario.Instanciar(Tfm_Cad_Cliente,fm_Cad_Cliente);
end;

procedure Tfm_Principal.bt_Cad_PedidoClick(Sender: TObject);
begin
  TFormulario.Instanciar(Tfm_Cad_Orcamento,fm_Cad_Orcamento);
end;

procedure Tfm_Principal.bt_Cad_ProdutoClick(Sender: TObject);
begin
  TFormulario.Instanciar(Tfm_Cad_Produto,fm_Cad_Produto);
end;

procedure Tfm_Principal.bt_Cad_VolumeClick(Sender: TObject);
begin
  TFormulario.Instanciar(Tfm_Cad_Produto_Caixa,fm_Cad_Produto_Caixa);
end;

procedure Tfm_Principal.bt_ComandoSQLClick(Sender: TObject);
begin
  TFormulario.Instanciar(Tfm_SQL,fm_SQL);
end;

procedure Tfm_Principal.bt_ConfigClick(Sender: TObject);
begin
  TFormulario.Instanciar(Tfm_Configuracoes,fm_Configuracoes);
end;

procedure Tfm_Principal.bt_GrupoProdutoClick(Sender: TObject);
begin
  TFormulario.Instanciar(TfmProdutoGrupo,fmProdutoGrupo);
end;

procedure Tfm_Principal.bt_OrdemServicoClick(Sender: TObject);
begin
  TFormulario.Instanciar(Tfm_OrdemServico,fm_OrdemServico);
end;

procedure Tfm_Principal.bt_RelatorioClick(Sender: TObject);
begin
  TFormulario.Instanciar(TfmRelatorio,fmRelatorio);
end;

procedure Tfm_Principal.FormShow(Sender: TObject);
begin
  try
    case AnsiIndexStr(AnsiLowerCase(uAplicacao.Aplicacao.GetTelaInicial),['pedido']) of
      0:TFormulario.Instanciar(Tfm_Cad_Orcamento,fm_Cad_Orcamento);
    end;
  except
    on E:Exception do
      TErro.GravarErro(Self.ClassName,'FormShow',E,true,'Formulário inexistente');
  end;
end;

procedure Tfm_Principal.SetWidthBar(bDentro: boolean);
begin
  if bDentro then
  begin
    bt_Cad_Cliente.Caption  := 'Cliente';
    bt_Cad_Produto.Caption  := 'Produto';
    bt_Cad_Pedido.Caption   := 'Pedido';
    bt_Cad_Caixa.Caption    := 'Caixa';
    bt_Cad_Volume.Caption   := 'Volume';
    bt_GrupoProduto.Caption := 'Grupo Produto';
    bt_Config.Caption       := 'Config.';
    bt_Relatorio.Caption    := 'Relatórios';
    bt_OrdemServico.Caption := 'Ordem Serviço';
    bt_ComandoSQL.Caption   := '';
    pn_Navbar.Width         := 137;
  end
  else
  begin
    bt_Cad_Cliente.Caption  := '';
    bt_Cad_Produto.Caption  := '';
    bt_Cad_Pedido.Caption   := '';
    bt_Cad_Caixa.Caption    := '';
    bt_Cad_Volume.Caption   := '';
    bt_GrupoProduto.Caption := '';
    bt_Config.Caption       := '';
    bt_Relatorio.Caption    := '';
    bt_OrdemServico.Caption := '';
    bt_ComandoSQL.Caption   := '';
    pn_Navbar.Width         := 60;
  end;
end;

procedure Tfm_Principal.ObjOnMouseEnter(Sender: TObject);
begin
  SetWidthBar(True);
end;

procedure Tfm_Principal.ObjOnMouseLeave(Sender: TObject);
begin
  SetWidthBar(False);
end;

procedure Tfm_Principal.FormCreate(Sender: TObject);
begin
  bt_Cad_Cliente.OnMouseEnter     := objOnMouseEnter;
  bt_Cad_Produto.OnMouseEnter     := objOnMouseEnter;
  bt_Cad_Pedido.OnMouseEnter      := objOnMouseEnter;
  bt_Cad_Caixa.OnMouseEnter       := objOnMouseEnter;
  bt_Cad_Volume.OnMouseEnter      := objOnMouseEnter;
  bt_GrupoProduto.OnMouseEnter    := objOnMouseEnter;
  bt_Config.OnMouseEnter          := objOnMouseEnter;
  bt_Relatorio.OnMouseEnter       := objOnMouseEnter;
  bt_OrdemServico.OnMouseEnter    := objOnMouseEnter;
  pn_Navbar.OnMouseEnter          := objOnMouseEnter;
  bt_ComandoSQL.OnMouseEnter      := objOnMouseEnter;
  pn_Navbar.OnMouseLeave          := objOnMouseLeave;
end;

end.
